• All the code in this archive is distributed under the GNU General Public License. That means that you can take this program, update it, fix it, add to it, make it more robust, add features, add bells and whistles — and then you can rerelease it under the GNU General Public License. The original code is still copyrighted to me, your additions are copyrighted to you, and the next person has the same chance that you did to learn from it.
• This program contains a self-integrity checker. Its default state is uninstalled, which means it does not check progam integrity. If and when you rerelease the program, please install the integrity checker in your finished application. Such a simple procedure as checking the resource fork and map lengths to stored values can help early detection of viruses, and ensures a minimal amount of program integrity.
• To install the integrity checker, launch the finished application with the SHIFT key held down. (This may take a little work; you can’t double-click on the application to launch it while the SHIFT key is down, so you will have to launch it and immediately press the SHIFT key.) The integrity check installation merely stores the application’s resource fork and map lengths in the application’s resource fork. From then on, when the application runs its self-integrity check (as soon as the program is launched, even before the toolbox is initialized), it merely checks the resource fork and map lengths and compares them with the stored values, and it displays an error dialog if the values do not match.
• I hope you enjoy this code and learn from it. I did.